package com.example.dubbonacosuserprovider.configuration;

import org.apache.dubbo.common.constants.CommonConstants;
import org.apache.dubbo.common.extension.Activate;
import org.apache.dubbo.rpc.*;

@Activate(group = CommonConstants.PROVIDER)
public class TokenProviderFilter implements Filter {
    @Override
    public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
//        System.out.println(RpcContext.getClientAttachment().getAttachment("token2"));
        System.out.println("====================");
        System.out.println(RpcContext.getServerAttachment().getAttachment("userToken"));//token不行
        String  token ="abc";
        if (token == null || !isValidToken(token)) { // 增加token为null的判断
            return invoker.invoke(invocation);
        }
        return invoker.invoke(invocation);
    }

    private boolean isValidToken(String token) {
        // 在这里实现你的Token验证逻辑
        // 例如：与数据库或缓存中的Token进行比较
        // 或者使用JWT进行验证
        return true; // 示例中简单返回true，实际需要根据业务实现
    }
}
